<?php
/*
 * IKPHP 爱客开源社区 @copyright (c) 2012-3000 IKPHP All Rights Reserved 
 * @author 小麦
 * @Email:ikphp@sina.cn
 * @公共评论控制器 2014年8月21日16:43:25
 */
namespace IKPHP\Apps\Home\Controllers;

use IKPHP\Common\Controllers\FrontendController;
use IKPHP\Common\Models\Comment;
use IKPHP\Common\Models\VirtualModel;

class CommentController extends FrontendController
{
	private $userid = 0;
	
    public function initialize()
    {
        parent::initialize();
        // 访问者控制
		if ($this->visitor){
			$this->userid = $this->visitor['userid'];
		}  
		$this->vimodel = new VirtualModel();    
    }
	// 删除评论
	public function deleteAction(){
		//访问控制
		if(!$this->visitor){return $this->_redirect('home/user/login');}
		
		if(IS_POST && IS_AJAX){
			
			$commentid = $this->_post('cid');
			$userid = $this->userid;
			$tokenKey		= $this->_post('tokenKey');
			$tokenValue		= $this->_post('tokenValue');
			$jsonData = array();
			
			if ($this->security->checkToken($tokenKey,$tokenValue)){
				
				$strComment = Comment::findFirst("cid = '$commentid'");
				if(empty($strComment)){
					$jsonData = array('status'=>1,'text'=>'没有要删除的评论/回复');
					return $this->ajaxReturn($jsonData);				
				}
		
				$this->vimodel->setviSource($strComment->type);
				$pkey = $this->vimodel->getPk();
		
				$strMod = $this->vimodel->findFirst("$pkey = $strComment->typeid");
				if(!$strMod){
					$jsonData = array('status'=>1,'text'=>'没有要删除的评论/回复');
					return $this->ajaxReturn($jsonData);				
				}
				
				// 只有应用发布人 可以删除 或 自己发的 其他权限不允许删除
				if($strMod->userid== $userid || $strComment->userid == $userid){
					$is_del = Comment::delComment($commentid);
					if($is_del){
						$jsonData = array('status'=>0,'text'=>'删除成功');
						return $this->ajaxReturn($jsonData);	
					}
				}else{
					$jsonData = array('status'=>1,'text'=>'你没有删除权限！');
					return $this->ajaxReturn($jsonData);					
				}				
				
			}else{
	        	$jsonData = array('status'=>1,'text'=>'Token会话失败！');
	        	return $this->ajaxReturn($jsonData);			
			}
			
		}else{
			return $this->error('你访问的页面不存在！');
		}
	}
	// 添加评论
	public function addAction(){
		//访问控制
		if(!$this->visitor){return $this->_redirect('home/user/login');}
		
		if(IS_POST && IS_AJAX){
			
			$content		= $this->_post('content');		
			$base64Data		= $this->_post('base64Data');
			$referid		= $this->_post('referid','intval', 0);
			$tokenKey		= $this->_post('tokenKey');
			$tokenValue		= $this->_post('tokenValue');
			
			$userid = $this->userid;
			
			if ($this->security->checkToken($tokenKey,$tokenValue)){
				
	        	$jsonData = array();	
				if($content==''){
					$jsonData = array('status'=>1,'text'=>'没有任何内容是不允许你通过滴^_^');
					return $this->ajaxReturn($jsonData);
				}elseif(ck_strlen($content) > 2000){
					$jsonData = array('status'=>1,'text'=>'发这么多内容干啥,最多只能写2000千个字^_^,回去重写吧！');
					return $this->ajaxReturn($jsonData);
				}elseif(empty($base64Data)){
					$jsonData = array('status'=>1,'text'=>'你可以去火星了！');
					return $this->ajaxReturn($jsonData);
				}

				// 分解数据
		        $arr_post = unserialize(base64_decode($base64Data));
		       	$page		= $arr_post['page'];
				$typeid		= $arr_post['typeid'];
				$type		= $arr_post['type'];
				$note_userid= $arr_post['userid'];
				$order		= $arr_post['order'];
				$isauthor	= $arr_post['isauthor'];
		        $link		= $arr_post['link'];
		        
		        //先查寻判断数据是否存在于该模型如：日志模型user_note
				$this->vimodel->setviSource($type);
				$pkey = $this->vimodel->getPk();
		
				$strMod = $this->vimodel->findFirst("$pkey = $typeid");
				if(!$strMod){
					$jsonData = array('status'=>1,'text'=>'没有该虚拟模型数据');
					return $this->ajaxReturn($jsonData);
				}

				// 组织数据
				$arrData = array (
						'referid'	=> $referid,
						'typeid'	=> $typeid,
						'type'		=> $type,
						'userid'	=> $this->userid,
						'content'	=> $content,
						'isdelete'	=> 0,
						'addtime'	=> time(),
				);
				//添加
				$newComment = new Comment();
				if (false !== $newComment->save ( $arrData )) {
					$jsonData = array('status'=>0,'text'=>'发表评论成功了');
					// TODO: 记录日志 更新评论数
					return $this->ajaxReturn($jsonData);
				}else{
					$jsonData = array('status'=>1,'text'=>'发表评论失败了');
					return $this->ajaxReturn($jsonData);					
				}
				
	        }else{
	        	$jsonData = array('status'=>1,'text'=>'Token会话失败！');
	        	return $this->ajaxReturn($jsonData);
	        }
		}else{
			return $this->error('你访问的页面不存在！');
		}
	}   
}